私はそれがすべて約束について考え出したと思ったが、これは実際にベッドから私を捨てる。 2つの引数を取ってエグゼキュータを使って新しいPromiseを作成するとき、私はその約束でthen()またはcatch()を実行する前にこのメソッドを実行しているのですか?私は尋ねる前に約束を実行しないでください
Running node 6.2.2。
import assert = require('assert');
describe("When working with promises",() => {
let ar = [1, 2, 3, 4, 5, 6];
beforeEach(() => {
})
it("should be perfectly fine but isn't when mapping to promises", (done) => {
ar.map(num => {
return new Promise((resolve, reject) => {
done(new Error('Why on earth is ' + num + ' called'));
})
})
done();
})
it("should be perfectly fine when mapping to methods", (done) => {
ar.map(num => {
return (resolve, reject) => {
done(new Error(num + ' is not called ever'));
}
})
done();
})
});
最初のテストが失敗し、2番目のテストが成功しました。
ありがとう、私はいつもPromiseコンストラクタを複数回実行できると思っていました。できますが、エグゼキュータで実行されるすべての作業は1回だけ実行されます – Lostfields