javascript的Promise和回调有什么区别?

OSC首席键客 发布于 2016/08/08 22:30
阅读 751
收藏 0

promise写进了ES6规范,我看了下,感觉和回调没多大区别啊。

都是在成功和失败的时候设置一个处理函数。

加载中
0
xyz327
xyz327
promise可以链式调用,还可以catch错误
0
boystudio
boystudio
你的感觉是对的,说明你还没体会到Promise的好处,我第一感觉也是这样,但使用后,很多流程型的程序,不得不佩服Promise设计非常的优秀。
OSC首席键客
OSC首席键客
确实没用到。
0
jQer
jQer

Promise 只是个过渡,说白了都是编译器/解释器的语法糖(宏):

function readAfter(time) {
  return new Promise(function (c, f) {
    setTimeout(function () {
      console.log("Read file");
      if (1 === 1) {
        c();
      } else {
        f();
      }
    }, time);
  });
}


function writeAfter(time, data) {
  return new Promise(function (c, f) {
    setTimeout(function () {
      console.log("Write file: ", data);
      if (1 === 1) {
        c();
      } else {
        f();
      }
    }, time);
  });
}


(async function () {
  try {
    await readAfter(1000);
    await writeAfter(1000, "hello");
  } catch (e) {
    console.log("Error: ", e.message);
  }
} ());



0
江湖小火_roy
江湖小火_roy
代码好管理
返回顶部
顶部