@siyu/toolbox
siyu的私房工具盒
实现了一些抽象的工具函数,方便日常开发使用
@siyu/toolbox/base/Sequence
该函数用于为异步函数同步执行回调函数,当某个异步函数未执行完成时,不会执行后续的异步回调,即便后续的异步任务已完成。
import { createSeqCtx } from '@siyu/toolbox/base/Sequence';
const seqCtx = createSeqCtx();
const promise1 = new Promise<number>(resolve => {
setTimeout(() => {
resolve(1);
}, 3000);
});
const promise2 = new Promise<number>(resolve => {
setTimeout(() => {
resolve(2);
}, 1000);
});
seqCtx(promise1, function(number) {
console.log(number);
});
seqCtx(promise2, function(number) {
console.log(number);
});
//output
//1
//2
@siyu/toolbox/http/SeqAjax
基于Sequence的Ajax,执行一系列异步请求,同步处理请求返回后的回调。
import { seqPost, seqGet } from '@siyu/toolbox/http/SeqAjax';
seqPost(<url>, <data>).then((resp) => {
//do callback action
});
seqGet(<url>).then((resp) => {
//do callback action
});
@siyu/toolbox/react/hook
import { useWillMount, useDidMount, useWillUnmount, useDidUpdate, useWillUpdate } from '@siyu/toolbox/react/hook';
import React, { FC } from 'react';
const Component: FC<{}> = function(props) {
useWillMount(() => {
console.log('will mount');
});
useDidMount(() => {
console.log('did mount');
});
useWillUnmount(() => {
console.log('will unmount');
});
useDidUpdate(() => {
console.log('did update');
});
useWillUpdate(() => {
console.log('will update');
});
return (
<div>component</div>
);
}