New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

zpromise

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

zpromise - npm Package Compare versions

Comparing version 1.2.0 to 1.2.1

test/helpers/index.js

34

index.js
class zPromise {
/**
*
* @param {Number} timeout 超时时间,单位ms
* @param {Object} options
* @param {Number} options.timeout 超时时间,单位ms
*/
constructor(options = {}) {
let { timeout, message } = options
let callback

@@ -18,11 +17,22 @@

if (timeout) {
if (options.delay) {
let timeId = setTimeout(() => {
callback.reject(message || `Promise等待超过${timeout}ms`)
promise.state = 'reject'
}, timeout);
let { resolve, reject, delay } = options
let state, value
if (resolve === undefined) {
state = 'reject'
value = reject
} else {
state = 'resolve'
value = resolve
}
let timeout = setTimeout(() => {
callback[state](value)
promise.state = state
}, delay)
promise.resolve = function (data) {
clearTimeout(timeId)
clearTimeout(timeout)
callback.resolve(data)

@@ -33,3 +43,3 @@ promise.state = 'resolve'

promise.reject = function (data) {
clearTimeout(timeId)
clearTimeout(timeout)
callback.reject(data)

@@ -42,9 +52,9 @@ promise.state = 'reject'

promise.resolve = function (data) {
promise.state = 'resolve'
callback.resolve(data)
promise.state = 'resolve'
}
promise.reject = function (data) {
promise.state = 'reject'
callback.reject(data)
promise.state = 'reject'
}

@@ -51,0 +61,0 @@

{
"name": "zpromise",
"version": "1.2.0",
"version": "1.2.1",
"description": "Promise简化包装器,用于增强已有ES6 Promise的易用性",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"test": "jtf -w"
},
"author": "",
"license": "ISC"
"license": "ISC",
"devDependencies": {
"jtf": "^1.1.3"
},
"directories": {
"test": "test"
},
"repository": {
"type": "git",
"url": "git+https://github.com/xiangle/zpromise.git"
},
"bugs": {
"url": "https://github.com/xiangle/zpromise/issues"
},
"homepage": "https://github.com/xiangle/zpromise#readme",
"dependencies": {}
}
<!-- Promise简化包装器,用于增强已有ES6 Promise的易用性 -->
## Install
### Install

@@ -9,13 +9,13 @@ ```

## 特性
### 特性
* 消除Promise注入函数,直接在Promise实例上调用resolve和reject方法进行状态管理
* 支持Promise等待超时
* 支持Promise超时触发resolve或reject,解除无限等待
* 支持获取Promise实例当前状态
* 支持获取当前Promise实例状态
* 支持Promise重启,可复用配置项
## 示例
### 示例

@@ -34,3 +34,3 @@ ```js

### 超时
#### 超时

@@ -42,8 +42,8 @@ ```js

let promise = new zPromise({ time: 3000, message: "等待超时" })
let promise = new zPromise({ delay: 3000, reject: "等待超时" })
console.log(promise.state)
await promise.catch(message => {
console.error(message)
await promise.catch(error => {
console.error(error)
})

@@ -59,3 +59,3 @@

### 重启
#### 重启

@@ -67,9 +67,9 @@ ```js

let p1 = new zPromise({ time: 3000, message: "等待超时1" })
let p1 = new zPromise({ delay: 3000, resolve: { a: 1 } })
await p1.catch(message => {
console.error(message)
await p1.catch(error => {
console.error(error)
})
let p2 = p1.restart({ time: 3000, message: "等待超时2" })
let p2 = p1.restart({ delay: 2000, reject: new Error("等待超时") })

@@ -94,3 +94,3 @@ p2.then(data => {

## API
### API

@@ -101,6 +101,8 @@ #### zPromise(options)

* `timeout` *Number* 超时时间,单位ms,可选
* `delay` *Number* 超时时间,单位ms,可选
* `message` *String* 超时描述信息,可选
* `reject` * reject超时返回值,默认
* `resolve` * resolve超时返回值
#### this.state

@@ -107,0 +109,0 @@

@@ -1,27 +0,23 @@

const zPromise = require('..')
const test = require('jtf');
const zPromise = require('..');
const { sleep } = require('./helpers/');
let promise = new zPromise({ time: 3000 })
test('time', async t => {
promise.catch(message => {
let promise = new zPromise({ delay: 3000 })
console.error(message)
promise.catch(message => {
})
})
async function run() {
await promise.catch(message => {
console.error(message)
t.equal(undefined, message);
})
console.log(9999)
t.equal("reject", promise.state);
}
await sleep(1000)
setTimeout(() => {
promise.reject(666)
}, 1000);
run()
})

@@ -0,13 +1,40 @@

const test = require('jtf');
const zPromise = require('..');
const { sleep } = require('./helpers/');
let promise = new zPromise({ time: 3000 })
test('reject', async t => {
console.log(promise.state)
let promise = new zPromise({ delay: 2000, reject: '等待超时' })
setTimeout(() => {
promise.catch(function (error) {
promise.resolve()
console.log(promise.state)
})
}, 1000);
t.deepEqual('pending', promise.state);
await sleep(1000)
t.deepEqual('pending', promise.state);
await sleep(1000)
t.deepEqual('reject', promise.state);
})
test('resolve', async t => {
let promise = new zPromise({ delay: 2000, resolve: { a: 1 } })
t.deepEqual('pending', promise.state);
await sleep(1000)
t.deepEqual('pending', promise.state);
await sleep(2000)
t.deepEqual('resolve', promise.state);
})

@@ -0,28 +1,28 @@

const test = require('jtf');
const zPromise = require('..');
const { sleep } = require('./helpers/');
async function run(params) {
test('restart', async t => {
let p1 = new zPromise({ time: 3000, message: "等待超时1" })
let p1 = new zPromise({ delay: 3000, resolve: "等待超时1" })
console.log(p1.state)
t.equal('pending', p1.state);
// setTimeout(() => {
// p1.resolve()
// }, 5000);
await p1.catch(message => {
console.error(message)
await p1.catch(error => {
console.error(error)
})
console.log(p1.state)
t.equal('resolve', p1.state);
let p2 = p1.restart({ time: 3000, message: "等待超时2" })
t.equal("等待超时1", await p1);
p2.then(message => {
console.error(message, 'then')
}).catch(message => {
console.error(message, 'catch')
let p2 = p1.restart({ delay: 3000, reject: "等待超时2" })
p2.then(value => {
}).catch(error => {
t.equal("等待超时2", error);
})
console.log(p2.state)
t.equal("pending", p2.state);

@@ -33,8 +33,6 @@ setTimeout(() => {

console.log(p2.state)
t.equal("reject", p2.state);
}, 5000);
}
run()
})

@@ -0,12 +1,15 @@

const test = require('jtf');
const zPromise = require('..');
const { sleep } = require('./helpers/');
async function run() {
test('time', async t => {
let promise = new zPromise({
time: 3000,
message: "等待超时"
delay: 3000,
resolve: { a: 1 },
// reject: '等待超时'
})
setTimeout(() => {
// promise.resolve()

@@ -16,8 +19,8 @@

await promise.catch(message => {
console.error(message)
let result = await promise.catch(error => {
console.error(error)
})
}
t.deepEqual({ a: 1 }, result);
run()
})
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc