谁用回应包装回调?

时间:2014-04-17 21:16:33

标签: javascript promise

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

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

如何使用promise包装该函数,以便我知道返回了哪个item_id?像这样:

markRead(item_id).then(function(result)
    {
      emailOwner(result)
    },
    function(result)
    {
      emailSystem(result)
});

1 个答案:

答案 0 :(得分:2)

function markRead(item_id) {
    return new Promise(function(resolve, reject) {

      markAsRead(item_id,function(result){
          if (/* result is OK */) {
            resolve(result);
          }
          else {
            reject(result);
          }
      })
    });
}