async generator promise异步方案实际运用
es7 async方案
/******************async***********************/
var timeFn=function(time){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log(2)
resolve(3);
},time)
})
}
var asyncFn=async function (){
console.log(1)
var parm=await timeFn(5000);
console.log(parm)
console.log(4)
}
asyncFn()
generator方案
/******************generator***********************/
var timeFn=function(time){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log(2)
resolve(3);
},time)
})
}
var genFn=function * (){
console.log(1)
var parm=yield timeFn(5000);
console.log(parm)
console.log(4)
}
asyncFn()
promise方案
/******************promise***********************/
var timeFn=function(time){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log(2)
resolve(3);
},time)
})
}
console.log(1)
timeFn(5000).then(function(parm){
console.log(parm)
console.log(4)
})
产品的需求
工作中的异步实用场景
ended 是音频播放完毕事件 btnText 是按钮文案
使用knockout库
self.timer = ko.observable(3);
self.focusChoice.subscribe((newVal)=>{
if (newVal == '单词') {
self.timer(3)
} else {
self.timer(5)
}
})
self.btnText = ko.observable(`提交`)
self.disabled = ko.observable(false);
self.ended = async ()=> {
console.log(1)
self.btnText(`${self.timer()}秒后可以提交`)
console.log(2)
await self.promiseTime();
console.log(3)
self.btnText('提交')
console.log(4)
}
self.promiseTime = ()=> {
return new Promise((resolve)=> {
setTimeout(() => {
self.disabled(true);
resolve();
}, self.timer() * 1000)
})
}
gif
知识没有高低贵贱之分。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?