Promise -------JavaScrip

本文摘要:http://www.liaoxuefeng.com/

跟多关于Promose的了解 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises

Promise 表示异步操作的最终完成或失败的对象.

异步函数调用

   <script>
            function callback() {
                console.log(‘Done‘);
            }
            console.log("before setTimeout()");
            setTimeout(callback, 1000);//一秒钟后调用callback函数
            console.log("after setTimeout()");

        </script>

Promise 是一个返回的对象,您将回调函数附加到,而不是将回调函数传递给函数。

例如,而不是期望两个回调的旧式函数,并且在最终完成或失败时调用其中一个函数

我们把Promise看做一个类。

构造函数:

new Promise( /* executor */ function(resolve, reject) { ... } );

方法:Promise.resolve(value)

Promise .prototype .then ()

then()方法返回a Promise。它最多有两个参数:回调函数的成功和失败案例Promise

            var p1 = Promise.resolve(30);
            var p2 = p1.then(function (value) {
                console.log("执行之前");
                return value;
            });  //返回的是Promise 对象
            console.log(p2); //
            setTimeout(function () {
                console.log(p2);
            },1000)

时间: 2024-10-25 07:34:48

Promise -------JavaScrip的相关文章

promise方法

promise TemplateService.uploadTempate(fieKey).then(function(result){sef.memKay = result.data},function(error){console.log(error)}) 只要有then,它就是一个promise. TemplateService.uploadTempate(fieKey)返回一个promise,承诺如果TemplateService.uploadTempate(fieKey)函数执行成功,

Promise 原理探究及其简单实现

可移步 http://donglegend.com/2016/09/11/promise%E5%8E%9F%E7%90%86%E6%8E%A2%E7%A9%B6/ 观看 Promise是个什么玩意,大家都知道,度娘告诉我,以同步方式书写异步,解决回调地狱... 状态机 早闻Promise的大名,简单介绍,根据状态改变来执行相应处理函数.Promise的状态极其简单,只有 “pending”, “resolved”, “rejected”三种状态然后就是如何实现的问题,最关键的当然是监听到状态的更

【Mocha.js 101】同步、异步与 Promise

前情提要 在上一篇文章<[Mocha.js 101]Mocha 入门指南>中,我们提到了如何用 Mocha.js 进行前端自动化测试,并做了几个简单的例子来体验 Mocha.js 给我们带来的便利. 在本篇文章中,我们将了解到 Mocha.js 的同步/异步测试,以及如何测试 Promise. 同步代码测试 在上一篇文章中,其实我们已经学会了如何测试同步代码.今天,我们 BDD 风格编写一个测试: var should = require( 'should' ); var Calculator

Promise实现多图预加载

Promise正如它的中文意思"承诺"一样,保存着未来会发生事件(一般为异步操作).Promise避免了"回调地狱",写法更加接近同步操作.说到同步,我更加喜欢async.await,它们书写更贴近同步操作. 图片加载往往是异步的,如果有操作需要等到所有的图片加载完之后再执行,这时候就需要不断的监听所有图片的加载情况. ES5 利用ES5实现多图预加载,可以通过计数器判断有多少图片加载完成. var count = 0, // 计数器 imgs = []; /* *

摘抄 Promise原理

1.简单的promise: //极简promise雏形 function Promise(fn){ var value = null; callbacks = [];//callback为数组,因为可以同时有很多个回调 this.then = function(onFulfilled){ callbacks.push(onFulfilled); } function resolve(value){ callbacks.forEach(function(callback){ callback(va

从源码看 Promise 概念与实现

Promise 是 JS 异步编程中的重要概念,它较好地解决了异步任务中回调嵌套的问题.在没有引入新的语言机制的前提下,这是如何实现的呢?上手 Promise 时常见若干晦涩的 API 与概念,它们又为什么存在呢?源码里隐藏着这些问题的答案. 下文会在介绍 Promise 概念的基础上,以一步步代码实现 Promise 的方式,解析 Promise 的实现机制.相应代码参考来自 PromiseJS 博客 及 You don't know JS 的若干章节. Why Promise (有使用 Pr

从C#到TypeScript - Promise

从C#到TypeScript - Promise 背景 相信之前用过JavaScript的朋友都碰到过异步回调地狱(callback hell),N多个回调的嵌套不仅让代码读起来十分困难,维护起来也很不方便.其实C#在Task出现之前也是有类似场景的,Async Programming Mode时代,用Action和Func做回调也很流行,不过也是意识到太多的回调嵌套代码可读性差且维护不易,微软引入了Task和Task-based Async Pattern.虽然不知道是哪个语言最早有这个概念,

Promise粗解

一.Promise含义.作用.特点 Promise含义 异步编程的一种解决方案: 简单来说就是一个容器,里面保存这某个未来才会结束的事件(异步操作)的结果: 从语法上来讲,是一个对象,可以获取异步操作的消息: Promise作用 可避免回调金字塔式的代码: 优化异步流程: 得到异步流程中的错误: Promise对象的特点 对象的状态不受外界影响 Promise对象代表一个异步操作,用三种状态:pending(进行中).resolve(已完成).reject(已失败),只有异步操作的结果,可以决定

自己实现ES6中的Promise API

Promise API是ES6的推荐标准,该API是由各JavaScript的执行引擎在底层,通常是使用C++语言实现的 为了更好地理解Promise API的使用方法并探究其可能的实现方式,笔者在JavaScript层面对Promise API进行了实现. 该实现只是作为实验.学习使用,虽然与内置的实现功能相同,但是在设计和运行效率上肯定是不能相提并论. 我也希望之后能对自己的实现进行改善. 该实现在处理异步任务时,采用了轮询的方式来检测其状态的变化. 具体代码如下(注:笔者采用Node方式进