用承诺来包装回电的人

who to wrap callbacks with a promise?

本文关键字:包装 承诺      更新时间:2023-09-26

假设我有一个给定的函数我不能更改,它有一个回调函数:

markAsRead(item_id,function(result){console.log(result)})

如何用promise包装该函数,以便知道返回了哪个item_id?类似这样的东西:

markRead(item_id).then(function(result)
    {
      emailOwner(result)
    },
    function(result)
    {
      emailSystem(result)
});
function markRead(item_id) {
    return new Promise(function(resolve, reject) {
      markAsRead(item_id,function(result){
          if (/* result is OK */) {
            resolve(result);
          }
          else {
            reject(result);
          }
      })
    });
}