woods-promise
description: my customized promise
basic example
const Promise = require("woods-promise");
new Promise(
(resolve, reject) => {
// resolve(100)
// reject("出错了")
// reject(new Error("chucuole"))
setTimeout(() => {
resolve(100)
// reject("出错了")
// reject(new Error("chucuole"))
}, 1000);
}
).then(
// null,
res => {
console.log("res:", res)
// reject(new Error('then里面报错玩玩'))
// return "then"
return new Promise((resolve, reject) => {
setTimeout(() => {
// reject('then,reject')
// reject(new Error("ni shi ma ye"))
const pp = new Promise((resolve, reject) => {
reject("then99")
})
resolve(pp)
}, 1000);
}
)
},
// null
reason => {
// return "出错啦靓仔"
return new Promise((resolve, reject) => {
setTimeout(() => {
reject("出错啦靓仔")
}, 1000);
}
)
}
).then(
// res2 => {
// console.log("res2:", res2);
// return "hello"
// },
// reason2 => {
// console.log("reason2:", reason2);
// return "kugou"
// }
).then(
res3 => {
console.log("res3:", res3);
},
reason3 => {
console.log("reason3:", reason3)
}
)
Promise.prototype.finally example
new Promise(
(resolve, reject) => {
setTimeout(() => {
resolve("help me")
}, 3000);
}
).finally(() => {
return new Promise((resolve, reject) => {
console.log("hello kugou")
setTimeout(() => {
resolve()
}, 4000);
})
})
.then(
res => {
console.log("res:", res)
return new Promise((resolve, reject) => {
setTimeout(() => {
const pp = new Promise((resolve, reject) => {
reject("then99")
})
resolve(pp)
}, 1000);
}
)
},
reason => {
return new Promise((resolve, reject) => {
setTimeout(() => {
reject("出错啦靓仔")
}, 0);
}
)
}
).then(
)
.then(
res3 => {
console.log("res3:", res3);
},
reason3 => {
console.log("reason3:", reason3)
}
)
Promise.all example
Promise.all([1,
new Promise((resolve, reject) => {
setTimeout(() => {
resolve("woods")
}, 2000);
}),
3, 4,
new Promise((resolve, reject) => {
setTimeout(() => {
resolve("hello")
}, 1000);
}),
6
]).then(data => {
console.log("data:", data);
}, reason => {
console.log("reason all:", reason);
})
Promise.resolve example
Promise.resolve(
new Promise((resolve,reject)=>{
setTimeout(() => {
resolve(300)
}, 1000);
})
// 400
).then(
res => {
console.log("res::",res)
}
)
Promise.reject example
Promise.reject(300).then(res=> {
console.log("res000:", res);
}, reason=>{
console.log("reason000:",reason);
})
Promise.race example
Promise.race([
new Promise((resolve, reject) => {
setTimeout(() => {
resolve("woods")
}, 2000);
}),
new Promise((resolve, reject) => {
setTimeout(() => {
resolve("hello")
}, 1000);
}),
]).then(data => {
console.log("data:", data);
})