[Javascript] Promise-based functions should not throw exceptions

Source

You can also start a chain of then() method calls via Promise.resolve() and execute the synchronous code inside a callback:

    function asyncFunc() {
        return Promise.resolve()
        .then(() => {
            doSomethingSync();
            return doSomethingAsync();
        })
        .then(result => {
            ···
        });
    }

An alternative is to start the Promise chain via the Promise constructor:

    function asyncFunc() {
        return new Promise((resolve, reject) => {
            doSomethingSync();
            resolve(doSomethingAsync());
        })
        .then(result => {
            ···
        });
    }

This approach saves you a tick (the synchronous code is executed right away), but it makes your code less regular.

时间: 2024-12-13 11:16:15

[Javascript] Promise-based functions should not throw exceptions的相关文章

[Javascript] Promise

Promise 代表着一个异步操作,这个异步操作现在尚未完成,但在将来某刻会被完成. Promise 有三种状态 pending : 初始的状态,尚未知道结果 fulfilled : 代表操作成功 rejected : 代表操作失败 如果 Promise 操作 fulfilled 或者 rejected ,并且对应的处理函数被声明了,则该处理函数被调用. Promise vs 事件监听器(event listener) 事件监听器善于处理同一对象上重复发生的事情,例如按键.点击鼠标等.对于这些事

Javascript Promise 学习

Promise 就是处理异步的一个规范方法 a();b();alert("a");如果a() 里面有一个ajax 或者settimeout 那么alert("a") 会先跑这就是异步了.从前我们用一堆callBack函数来解决问题,但是这样写不好看.promise 的写法美丽多了依据上面的例子a().then(b).then(function(){alert("");})这样它会先跑完 a -> b - > alert("&

javaScript Promise 入门

Promise是JavaScript的异步编程模式,为繁重的异步回调带来了福音. 一直以来,JavaScript处理异步都是以callback的方式,假设需要进行一个异步队列,执行起来如下: animate (ball1, 100, function () { animate (ball2, 200, function () { animate (ball3, 300, function () { animate (ball3, 150, function () { animate (ball2

JavaScript Promise异步实现章节的下载显示

Links: JavaScript Promise:简介 1.一章一章顺序地下载显示下载显示 使用Array.reduce()和Promise.resolve()将各章的下载及显示作为整体串联起来. [下载][显示]串联再串联. promise.resolve().[then().then()].[then().then()].... => 串联2.各章节分别下载完成后,才再一章一章显示 使用Array.map()将各章的下载并行起来,用Promise.all()将结果合并一处,然后再一章一章地

Javascript Promise入门

是什么? https://www.promisejs.org/ What is a promise? The core idea behind promises is that a promise represents the result of an asynchronous operation. A promise is in one of three different states: pending - The initial state of a promise. fulfilled

JavaScript Promise API

同步编程通常来说易于调试和维护,然而,异步编程通常能获得更好的性能和更大的灵活性.异步的最大特点是无需等待."Promises"渐渐成为JavaScript里最重要的一部分,大量的新API都开始promise原理实现.下面让我们看一下什么是promise,以及它的API和用法! Promises现状 XMLHttpRequest API是异步的,但它没有使用promise API.但有很多原生的 javascript API 使用了promise: Battery API fetch

[Javascript] Refactoring: Polymorphic Functions

if-statements can add serious complexity and beg for refactoring. You can use polymorphic functions to simplify your ifs and dynamically call the appropriate method. For example you have the code like: function charge(){ if(this.moive.type==="regular

JavaScript Promise启示录

本篇,主要普及promise的用法. 一直以来,JavaScript处理异步都是以callback的方式,在前端开发领域callback机制几乎深入人心.在设计API的时候,不管是浏览器厂商还是SDK开发商亦或是各种类库的作者,基本上都已经遵循着callback的套路. 近几年随着JavaScript开发模式的逐渐成熟,CommonJS规范顺势而生,其中就包括提出了Promise规范,Promise完全改变了js异步编程的写法,让异步编程变得十分的易于理解. 在callback的模型里边,我们假

Javascript Promise Implementation

var Promise=function(args) { this.callback=[]; var _this=this; setTimeout(function() { _this.done(); }, 0); }; Promise.prototype.then=function(result) { this.callback.push(result); return this; }; Promise.prototype.when=function() { throw new Error('