重写 JS 回调以使用 promise

Rewrite JS callbacks to use promises

提问人:user1960836 提问时间:3/9/2023 最后编辑:user1960836 更新时间:3/9/2023 访问量:55

问:

我最近刚遇到 JS promise,所以我想重写很多回调来使用 promises。看例子似乎非常简单明了,直到我不得不自己调整它。

我有下面的例子,我想重写以使用promises。

getData = function (id, key, required, callback) {
  // do a lot of things
  let lParams = {
    tParams: { start: 0, Query: numQueries },
    callback: () =>  {
      if (!required)
        showGrid(id);
      if (callback)
        callback();
    }
  };
  //do some work...
  e = some condition
  if(e)
    e.load(tParams);
  else { 
    e.read(new data.Operation(tParams), tParams.callback);
  }

----------------- 函数使用示例-------

使用甚至可能发生在另一个 js 文件中

report.execute = function (params) {
      // Do a lot of things...
      showMessage("Working on data ...");
      getData(curFormID, data.key, false
        , function () {
          workStat = 1;
          ppl.pageReady();
        });
    }
  });
};

----------------- 到目前为止,我试图重写以使用承诺-----------------

getData = async (isoForm, nKey, onlyGet) => {
  
  let promise = new Promise((resolve, reject) => {
     // do the things that are in the getData function above???
  })
}

我将如何提前将其与感谢联系起来report.execute(...)

JavaScript Promise 回调

评论

2赞 gog 3/9/2023
填充它们后会发生什么?lParamsgetData
0赞 user1960836 3/9/2023
我在 lParams 中添加了更多信息,感谢您指出
0赞 trincot 3/9/2023
你能提供自包含的代码吗?目前被引用,但未定义,与 、 、 ...当你的代码中有如此多的“神奇”引用时,很难提出任何建议。tParamsnumQueriesshowGriddatae.read
1赞 trincot 3/9/2023
当你刚刚测试过这是假的时,怎么能工作?e.reade
1赞 Bergi 3/9/2023
"我将如何将其与report.execute(...)连接起来?- 在函数中,您将执行 or 。executegetData(curFormID, data.key, false).then(() => { workStat = 1; ppl.pageReady(); });await getData(curFormID, data.key, false); workStat = 1; ppl.pageReady();

答: 暂无答案